home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
DJGPP
/
BCCGRX12.ZIP
/
contrib
/
bcc2grx
/
src
/
bccgrx21.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-06-04
|
2KB
|
84 lines
/*
* BCC2GRX - Interfacing Borland based graphics programs to LIBGRX
* Copyright (C) 1993 Hartmut Schirmer
*
* see bccgrx.c for details
*/
#include "bccgrx00.h"
void set_BGI_mode(int *graphdriver, int *graphmode)
{
int rx = 0;
int ry = 0;
int rc = 0;
switch (*graphdriver) {
case VGA : switch (*graphmode) {
case VGALO : rx = 640; ry = 200; rc = 16; break;
case VGAMED: rx = 640; ry = 350; rc = 16; break;
case VGAHI : rx = 640; ry = 480; rc = 16; break;
}
break;
case IBM8514 : switch (*graphmode) {
case IBM8514LO: rx = 640; ry = 480; rc = 256; break;
case IBM8514HI: rx = 1024; ry = 768; rc = 256; break;
}
break;
case HERCMONO: if (*graphmode == HERCMONOHI) {
rx = 720;
ry = ((__gr_ADAPTER == GR_HERC) ? 348 : 350);
rc = ((__gr_ADAPTER == GR_HERC) ? 2 : 16);
}
break;
case CGA :
case MCGA :
case ATT400 : switch (*graphmode) {
case CGAC0 :
case CGAC1 :
case CGAC2 :
case CGAC3 : rx = 320; ry = 200; rc = 16;/*?*/ break;
case CGAHI : /* == MCGAMED == ATT400MED */
rx = 640; ry = 200; rc = 2; break;
case MCGAHI: /* == ATT400HI */
switch (*graphdriver) {
case MCGA : rx = 640; ry = 480;
rc = 2; break;
case ATT400: rx = 640; ry = 400;
rc = 2; break;
}
break;
}
break;
case EGA64 : switch (*graphmode) {
case EGA64LO : rx = 640; ry = 200; rc = 16; break;
case EGA64HI : rx = 640; ry = 350; rc = 4; break;
}
break;
case EGA : switch (*graphmode) {
case EGALO : rx = 640; ry = 200; rc = 16; break;
case EGAHI : rx = 640; ry = 350; rc = 16; break;
}
break;
case EGAMONO : if (*graphmode == EGAMONOHI) {
rx = 640; ry = 350; rc = 16;
}
break;
case PC3270 : if (*graphmode == PC3270HI) {
rx = 720; ry = 350; rc = 16;
}
break;
default : ERR = grInvalidDriver;
return;
}
if (rc != 0) {
__gr_BGI_w = rx;
__gr_BGI_h = ry;
__gr_BGI_c = rc;
*graphdriver = NATIVE_GRX;
*graphmode = GRX_BGI_EMULATION;
} else
ERR = grInvalidMode;
}